package com.xwj.coupon.user.framework.ratelimit;

/**
 * @Description TODO
 * @Author xwj
 * @Date 2025/8/23
 */

import java.lang.annotation.*;

/**
 * 限流注解，用于标记需要进行限流的方法
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimit {
    /**
     * 窗口大小，单位：s
     * @return
     */
    int windowSize() default 1;

    /**
     * 时间窗口内允许的最大请求数
     */
    int maxRequests() default 100;

    /**
     * 限流的资源标识，默认使用方法名
     */
    String resource() default "";
    /**
     * 触发限流时的提示信息
     */
    String msg() default "请求过于频繁，请稍后再试";

}
